This is an account of the library history since its release.
v1.1 - First public release
v1.11 - Fixed bug in MUseShapeBank and altered ShapesTotal size to word as it was incorrectly a longword
- Fixed bug in the errorchecking of Mc2pCPUmode that was checking d3 instead of d0
v1.12 - Fixed bug in MUnQueue that would only do two lines of code if wrapping was active, but should have been done always
v1.13 - MBoxF, MBoxFShape, MBoxFStencil and MBoxFCookie added
- MBox, MBoxShape, MBoxStencil and MBoxCookie added
v1.14 - MPlanar16ToBitmap, MPlanar16ToShape added
v1.15 - Planar-to-chunky converter optimised further using addx and reverse bitplane order, twice as fast as roxr.b #n,dn
- MGenericPtr added
- A shape's handle is unconditionally added (actually subtracted) to Xpos,Ypos in shape-to-bitmap type blits (MBlit etc)
v1.16 - Fixed small bug in !PerformPoint macro, d6.l should have been d6.w.
- Fixed small but ineffective bug in MPlotCookie, d6.l should have been d6.w
v1.17 - Added MCludgeCookie and MCludgeStencil, also needed to add two macros
- Fixed bug in macro used by MCludgeCookie and MCludgeStencil, as it was not setting `SHere' to 0 to indicate cludge.
v1.18 - Added MUnQueueRange for unqueuing a range of items and without flushing the queue
v1.19 - Fixed bug in data for shape banks, was using structures of 8 bytes but only were 6 bytes in mem
- Fixed bug in MReserveShapes, was shifting bank number 8 places instead of 3
v1.2 - Added MReMap and MReMapShape
v1.21 - Fixed bug in macro DeallocStencil, was killing the whole object
v1.22 - Commented-out line in MShapeClip and MBitmapClip to make X leftedge unaligned (width is still multiple of 4)
- Commented-out line in Macro CludgeResourceWindow to make X leftedge unaligned (width of window is still multiple of 4)
v1.23 - Added mode to MBlit so that if a cookie is not present it will just blit the graphic in `replace'-mode (unmasked)
- Minor pipeline improvement in macros !PerformPlot and !PerformPoint
- Added code to the init routine to reserve default amounts of all objects at runtime (doesn't need much mem)
- Added `BankToUse' parameter to MReserveShapes so that you don't have to do a seperate MUseShapeBank
- Changed BoxF and Box routines to use X2,Y2 instead of Width,Height and had to add macro CCheckWindowFits4
v1.24 - Made the colour parameter in MPlot,MPlotShape,MPlotStencil and MPlotCookie optional, assuming 0 if not specified
- *Partially* Added MLine, MLineShape, MLineStencil and MLineCookie
- Modified shapebank-related routines to provide 32 shape banks numbered 0..31, instead of 0..9.
- Fixed bugs in macros ShuffleRegs1, ShuffleRegs2 and ShuffleRegs3
v1.25 - Addred MReMapUsingShape and MReMapShapeUsingShape
v1.26 - Optimised routine PerformReMapUsing for slight speed gain
- Optimised routine PerformReMap for 25% speed gain in table mode
- Fixed bug in macro CCheckWindowFits4, which affected runtime errorchecking of MBox/MBoxF and related routines
v1.27 - Added MInk for setting a currently-used pen colour. Defaults to 1 which is a bit more logical than 0
- Added MColourMode function to accompany CookieMode/SolidMode etc, but for `colour' drawing mode in blits
- Added `colour' mode to MBlit, MQBlit, MSBlit, MQSBlit and MMaskScroll routines
- Removed redundant instruction in routine PerformBlit3's loop, for cookie-mode stencil-blits (slight speedup)
- Adjusted graphics routines to use the ink colour if assuming which colour to use, rather than 0
- Further optimised routine PerformReMapUsing for slight speedup (about 1-2fps)
- Changed order of tables being used for MReMap[Shape]UsingShape, for consistency with `MReMapMode' blit mode
- Added support for new Table objects
- Added MReserveTables, MFreeTables, MFreeTable, MAddrTable, MTable
- Added MFlushTable, MAutoUseTables, MUseTables, MUseTable, MUsedTable
- Added MTablePtr, MReMapMode
- Added new blit mode `ReMap' to the MBlit, MQBlit, MSBlit, MQSBlit and MMaskScroll routines for table-based remapping
v1.28 - Optimised MPictureDissolveIn for speed gain (a good few fps)
- Added MSimpleReMapMode
- Added new blit mode `SimpleReMap' to the MBlit, MQBlit, MSBlit, MQSBlit and MMaskScroll routines for 1-dim remapping
- Fixed bug in definitions, MPointStencil and MPointCookie were defined as statements, but should have been functions
- Changed the !PerformPoint macro to initialise d0 before grabbing the byte, in case it causes corrupt return value
v1.29 - Optimised non-cut routine used by MSMaskScrolls (PerformGenericBlit6[b])
- Slight optimisation to non-cut plain copy routine used by M[Q]SBlits (PerformBlit2)
- Finished MLine, MLineShape, MLineStencil and MLineCookie
v1.30 - Redirected routine PerformGenericBlit3[b] to use PerformBlit1[b], to save code redundancy, and made gen3b into 1b
- Added MSMaskScrollMode to support blit modes for MSMaskScrolls (previously only MMaskScrolls)
- Redirected routine PerformGenericBlit6[b] to use PerformBlit2[b], to prepare for shared sblit blit-mode code
- Redirected routine PerformGenericBlit9[b] to use PerformBlit3[b], to prepare for shared sblit cut blit-mode code
- Completed support for MSMaskScrolls in `copy' mode with blit modes, by adding PerformBlit2b (2 backwards)
- Completed support for MSMaskScrolls in `cut' mode with blit modes, by adding PerformBlit3b (3 backwards)
- Modified runtime errorchecking routines for MSMaskScrolls to check that tables are available in M[Simple]ReMapMode
v1.31 - Modified MScroll routines to support any width (non multiple, as low as 1).
- Modified MSScroll routines to support any width (non multiple, as low as 1) in both `paste' and `cut' modes.
v1.32 - Fixed bugs in routine PerformBlit2[b] for non-cut output to stencil. Some OR's should have been AND's, and vice versa.
v1.33 - Fixed bug in routine PerformLine, sometimes d5 was plotted rather than d6
v1.34 - Added MPlotParticles for plotting list of pixels to a colour. List items are X.w,Y.w
- Added MGrabParticles for grabbing list of pixels to a buffer. List items are X.w,Y.w. Buffer is Pixel.b's
- Added MDrawParticles for drawing grabbed list of pixels from a buffer. List items are X.w,Y.w. Buffer is Pixel.b's
- Added MGrabParticlesAndPlot for grabbing and plotting pixels to a colour. List items are X.w,Y.w. Buffer is Pixel.b's
- Fixed bug in initialisation, auto-clip for bitmaps and shapes shouldn't have been automatically On!
- Added MPlotParticlesA, MGrabParticlesA, MDrawParticlesA, MGrabParticlesAndPlotA, for actual-address list items
- Added MPlotParticlesQ, MGrabParticlesQ, MDrawParticlesQ, MGrabParticlesAndPlotQ, for X.q,Y.q items [*16*.16][*16*.16]
- Added MAddToParticles, MAddToParticlesA, MAddToParticlesQ, for adding values to particle list items
- Added MAdd2ToParticles, MAdd2ToParticlesA, MAdd2ToParticlesQ, for more efficient multiple adds to list items
v1.35 - Added MWrapParticles, MWrapParticlesA, MWrapParticlesQ, to wrap coords around edges of bitmap/clip (within reason)
- Fixed bugs in clip routine of MAddToParticlesQ and MAdd2ToParticlesQ, offsets and adders and adding were wrong
- Fixed bugs in clip routine of MWrapParticles and MWrapParticlesQ, 2 conditional branches to loop missing
v1.36 - Added MReboundParticles and MReboundParticlesQ, for bouncing particless off the edges. No `A' version, not possible
- Fixed bugs in MLine, MLineShape, MLineStencil, MLineCookie, short version used wrong colour
- Added MProcessor function, to replace blitz's `Processor' instruction and support 060
- Modified various cpu-related routines (c2p and 040 choices) to support possible 060 cpu number
- Modified init routine to check for cpu availability and set MCPU, Mc2pCPUmode and M040c2pUsage to appropriate defaults
v1.37 - Added MAddXYToParticles and MAddXYToParticlesQ for adding X and Y constants to X and Y components in a particle list
- Added MAddXYToParticlesA to add constant value to list of Ptr.l particles
- Added MAddXToParticles, MAddYToParticles, MAddXToParticlesQ and MAddYToParticlesQ for further adding to particle lists
v1.38 - Removed unnecessary code from MPlotParticlesA, MGrabParticlesA, MDrawParticlesA and MGrabParticlesAndPlotA
- Added MParticleMode to choose MColourMode, MReMapMode or MSimpleReMapMode for particle plot/draw
- Added MSimpleReMapMode and MReMapMode support to MPlotParticles, MPlotParticlesA and MPlotParticlesQ (clipping also!)
- Added MSimpleReMapMode and MReMapMode support to MDrawParticles, MDrawParticlesA and MDrawParticlesQ (clipping also!)
- Added MSimpleReMapMode and MReMapMode support to MGrabParticlesAndPlot[A/Q] for remap plot and normal grab (and clip!)
- Merged MAdd2ToParticles[A/Q] into extension of MAddToParticles[A/Q] to make friendlier interface & cut down on tokens
- Token order has been compromised due to removal of MAdd2ToParticles, MAdd2ToParticlesA and MAdd2ToParticlesQ !!!
- Fixed errornumber bugs in errorchecking routines of MShapePtr and MCookiePtr. Was Error28, should have been Error27
- Added support to MBitmapPtr, MStencilPtr, MShapePtr and MCookiePtr to assume currently used objects if no params
- Merged MAddXToParticles[Q] into special-case routine of MAddXYToParticles[Q] (called if Y is 0)
- Merged MAddYToParticles[Q] into special-case routine of MAddXYToParticles[Q] (called if X is 0)
- Token order has been compromised due to removal of MAddXToParticles[Q] and MAddYToParticles[Q] !!!
converted with guide2html by Kochtopf